package top.linuyx.service;

import top.linuyx.pojo.entity.AccountEntity;
import top.linuyx.pojo.param.AccountLoginParam;
import top.linuyx.pojo.param.AccountRegisterParam;

/**
 * @Author Linuyx
 * @Description AccountService接口
 * @Date Created in 2021-04-09 8:54
 */
public interface AccountService {

    /**
     * 注册
     *
     * @param registerParam 注册请求体
     */
    void register(AccountRegisterParam registerParam);

    /**
     * 登录
     *
     * @param loginParam 登录请求体
     */
    void login(AccountLoginParam loginParam);

    /**
     * 根据用户名查询账户
     *
     * @param username 用户名
     * @return AccountEntity
     */
    AccountEntity getAccountByUsername(String username);

    /**
     * 根据用户名和角色查询账户
     *
     * @param username 用户名
     * @param role 角色
     * @return AccountEntity
     */
    AccountEntity getAccountByUsernameAndRole(String username, String role);

}
